home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 60 / IOPROG_60.ISO / soft / c++ / gsl-1.1.1-setup.exe / {app} / src / cblas / test_gbmv.c < prev    next >
Encoding:
C/C++ Source or Header  |  2002-04-18  |  19.5 KB  |  544 lines

  1. #include <gsl/gsl_test.h>
  2. #include <gsl/gsl_ieee_utils.h>
  3. #include <gsl/gsl_math.h>
  4. #include <gsl/gsl_cblas.h>
  5.  
  6. #include "tests.h"
  7.  
  8. void
  9. test_gbmv (void) {
  10. const double flteps = 1e-4, dbleps = 1e-6;
  11.   {
  12.    int order = 101;
  13.    int trans = 111;
  14.    int M = 3;
  15.    int N = 4;
  16.    int KL = 1;
  17.    int KU = 1;
  18.    int lda = 4;
  19.    float alpha = -1.0f;
  20.    float beta = -1.0f;
  21.    float A[] = { 0.423f, -0.143f, -0.182f, -0.076f, -0.855f, 0.599f, 0.389f, -0.473f, 0.493f, -0.902f, -0.889f, -0.256f, 0.112f, 0.128f, -0.277f, -0.777f };
  22.    float X[] = { 0.488f, 0.029f, -0.633f, 0.84f };
  23.    int incX = -1;
  24.    float Y[] = { 0.874f, 0.322f, -0.477f };
  25.    int incY = -1;
  26.    float y_expected[] = { -0.101941f, 0.764086f, 0.481914f };
  27.    cblas_sgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);
  28.    {
  29.      int i;
  30.      for (i = 0; i < 3; i++) {
  31.        gsl_test_rel(Y[i], y_expected[i], flteps, "sgbmv(case 794)");
  32.      }
  33.    };
  34.   };
  35.  
  36.  
  37.   {
  38.    int order = 102;
  39.    int trans = 111;
  40.    int M = 3;
  41.    int N = 4;
  42.    int KL = 1;
  43.    int KU = 1;
  44.    int lda = 4;
  45.    float alpha = -1.0f;
  46.    float beta = -1.0f;
  47.    float A[] = { 0.423f, -0.143f, -0.182f, -0.076f, -0.855f, 0.599f, 0.389f, -0.473f, 0.493f, -0.902f, -0.889f, -0.256f, 0.112f, 0.128f, -0.277f, -0.777f };
  48.    float X[] = { 0.488f, 0.029f, -0.633f, 0.84f };
  49.    int incX = -1;
  50.    float Y[] = { 0.874f, 0.322f, -0.477f };
  51.    int incY = -1;
  52.    float y_expected[] = { -0.656261f, 0.19575f, 0.055905f };
  53.    cblas_sgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);
  54.    {
  55.      int i;
  56.      for (i = 0; i < 3; i++) {
  57.        gsl_test_rel(Y[i], y_expected[i], flteps, "sgbmv(case 795)");
  58.      }
  59.    };
  60.   };
  61.  
  62.  
  63.   {
  64.    int order = 101;
  65.    int trans = 112;
  66.    int M = 3;
  67.    int N = 4;
  68.    int KL = 1;
  69.    int KU = 1;
  70.    int lda = 4;
  71.    float alpha = 0.0f;
  72.    float beta = 0.1f;
  73.    float A[] = { -0.066f, -0.153f, -0.619f, 0.174f, 0.777f, 0.543f, 0.614f, -0.446f, -0.138f, -0.767f, 0.725f, 0.222f, 0.165f, -0.063f, -0.047f, 0.267f };
  74.    float X[] = { -0.096f, -0.007f, -0.657f };
  75.    int incX = -1;
  76.    float Y[] = { -0.88f, 0.102f, -0.278f, 0.403f };
  77.    int incY = -1;
  78.    float y_expected[] = { -0.088f, 0.0102f, -0.0278f, 0.0403f };
  79.    cblas_sgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);
  80.    {
  81.      int i;
  82.      for (i = 0; i < 4; i++) {
  83.        gsl_test_rel(Y[i], y_expected[i], flteps, "sgbmv(case 796)");
  84.      }
  85.    };
  86.   };
  87.  
  88.  
  89.   {
  90.    int order = 102;
  91.    int trans = 112;
  92.    int M = 3;
  93.    int N = 4;
  94.    int KL = 1;
  95.    int KU = 1;
  96.    int lda = 4;
  97.    float alpha = 0.0f;
  98.    float beta = 0.1f;
  99.    float A[] = { -0.066f, -0.153f, -0.619f, 0.174f, 0.777f, 0.543f, 0.614f, -0.446f, -0.138f, -0.767f, 0.725f, 0.222f, 0.165f, -0.063f, -0.047f, 0.267f };
  100.    float X[] = { -0.096f, -0.007f, -0.657f };
  101.    int incX = -1;
  102.    float Y[] = { -0.88f, 0.102f, -0.278f, 0.403f };
  103.    int incY = -1;
  104.    float y_expected[] = { -0.088f, 0.0102f, -0.0278f, 0.0403f };
  105.    cblas_sgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);
  106.    {
  107.      int i;
  108.      for (i = 0; i < 4; i++) {
  109.        gsl_test_rel(Y[i], y_expected[i], flteps, "sgbmv(case 797)");
  110.      }
  111.    };
  112.   };
  113.  
  114.  
  115.   {
  116.    int order = 101;
  117.    int trans = 111;
  118.    int M = 3;
  119.    int N = 4;
  120.    int KL = 1;
  121.    int KU = 1;
  122.    int lda = 4;
  123.    double alpha = 0.1;
  124.    double beta = 0;
  125.    double A[] = { -0.688, 0.29, 0.442, -0.001, 0.313, -0.073, 0.991, -0.654, -0.12, 0.416, 0.571, 0.932, -0.179, -0.724, 0.492, -0.965 };
  126.    double X[] = { 0.187, -0.338, -0.976, -0.052 };
  127.    int incX = -1;
  128.    double Y[] = { -0.101, 0.8, 0.026 };
  129.    int incY = -1;
  130.    double y_expected[] = { 0.0083289, -0.0279986, -0.0446472 };
  131.    cblas_dgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);
  132.    {
  133.      int i;
  134.      for (i = 0; i < 3; i++) {
  135.        gsl_test_rel(Y[i], y_expected[i], dbleps, "dgbmv(case 798)");
  136.      }
  137.    };
  138.   };
  139.  
  140.  
  141.   {
  142.    int order = 102;
  143.    int trans = 111;
  144.    int M = 3;
  145.    int N = 4;
  146.    int KL = 1;
  147.    int KU = 1;
  148.    int lda = 4;
  149.    double alpha = 0.1;
  150.    double beta = 0;
  151.    double A[] = { -0.688, 0.29, 0.442, -0.001, 0.313, -0.073, 0.991, -0.654, -0.12, 0.416, 0.571, 0.932, -0.179, -0.724, 0.492, -0.965 };
  152.    double X[] = { 0.187, -0.338, -0.976, -0.052 };
  153.    int incX = -1;
  154.    double Y[] = { -0.101, 0.8, 0.026 };
  155.    int incY = -1;
  156.    double y_expected[] = { -0.1141297, 0.0088824, -0.0320568 };
  157.    cblas_dgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);
  158.    {
  159.      int i;
  160.      for (i = 0; i < 3; i++) {
  161.        gsl_test_rel(Y[i], y_expected[i], dbleps, "dgbmv(case 799)");
  162.      }
  163.    };
  164.   };
  165.  
  166.  
  167.   {
  168.    int order = 101;
  169.    int trans = 112;
  170.    int M = 3;
  171.    int N = 4;
  172.    int KL = 1;
  173.    int KU = 1;
  174.    int lda = 4;
  175.    double alpha = -0.3;
  176.    double beta = -0.3;
  177.    double A[] = { 0.746, 0.262, -0.449, -0.954, -0.093, 0.108, -0.496, 0.927, 0.177, 0.729, -0.92, -0.469, 0.87, -0.877, -0.308, -0.806 };
  178.    double X[] = { 0.662, -0.887, 0.261 };
  179.    int incX = -1;
  180.    double Y[] = { 0.771, 0.637, -0.177, -0.018 };
  181.    int incY = -1;
  182.    double y_expected[] = { -0.048588, -0.467865, 0.0818433, -0.0398619 };
  183.    cblas_dgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);
  184.    {
  185.      int i;
  186.      for (i = 0; i < 4; i++) {
  187.        gsl_test_rel(Y[i], y_expected[i], dbleps, "dgbmv(case 800)");
  188.      }
  189.    };
  190.   };
  191.  
  192.  
  193.   {
  194.    int order = 102;
  195.    int trans = 112;
  196.    int M = 3;
  197.    int N = 4;
  198.    int KL = 1;
  199.    int KU = 1;
  200.    int lda = 4;
  201.    double alpha = -0.3;
  202.    double beta = -0.3;
  203.    double A[] = { 0.746, 0.262, -0.449, -0.954, -0.093, 0.108, -0.496, 0.927, 0.177, 0.729, -0.92, -0.469, 0.87, -0.877, -0.308, -0.806 };
  204.    double X[] = { 0.662, -0.887, 0.261 };
  205.    int incX = -1;
  206.    double Y[] = { 0.771, 0.637, -0.177, -0.018 };
  207.    int incY = -1;
  208.    double y_expected[] = { -0.404082, -0.2887797, 0.1876263, -0.1345935 };
  209.    cblas_dgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);
  210.    {
  211.      int i;
  212.      for (i = 0; i < 4; i++) {
  213.        gsl_test_rel(Y[i], y_expected[i], dbleps, "dgbmv(case 801)");
  214.      }
  215.    };
  216.   };
  217.  
  218.  
  219.   {
  220.    int order = 101;
  221.    int trans = 111;
  222.    int M = 3;
  223.    int N = 4;
  224.    int KL = 1;
  225.    int KU = 1;
  226.    int lda = 4;
  227.    float alpha[2] = {0.0f, 1.0f};
  228.    float beta[2] = {0.0f, 0.1f};
  229.    float A[] = { -0.107f, 0.926f, -0.246f, -0.555f, -0.301f, 0.276f, 0.471f, -0.084f, -0.754f, 0.082f, -0.952f, -0.394f, 0.659f, 0.054f, 0.795f, 0.923f, 0.232f, -0.788f, 0.478f, 0.775f, -0.118f, 0.691f, -0.933f, 0.809f, 0.164f, -0.263f, -0.923f, -0.88f, 0.819f, -0.521f, -0.045f, 0.034f };
  230.    float X[] = { 0.407f, 0.895f, 0.301f, 0.769f, -0.269f, -0.465f, 0.455f, -0.628f };
  231.    int incX = -1;
  232.    float Y[] = { -0.116f, -0.744f, -0.936f, -0.064f, -0.232f, -0.665f };
  233.    int incY = -1;
  234.    float y_expected[] = { -0.806176f, -1.559f, -1.57611f, -0.155463f, 0.098816f, -0.274361f };
  235.    cblas_cgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);
  236.    {
  237.      int i;
  238.      for (i = 0; i < 3; i++) {
  239.        gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "cgbmv(case 802) real");
  240.        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "cgbmv(case 802) imag");
  241.      };
  242.    };
  243.   };
  244.  
  245.  
  246.   {
  247.    int order = 102;
  248.    int trans = 111;
  249.    int M = 3;
  250.    int N = 4;
  251.    int KL = 1;
  252.    int KU = 1;
  253.    int lda = 4;
  254.    float alpha[2] = {0.0f, 1.0f};
  255.    float beta[2] = {0.0f, 0.1f};
  256.    float A[] = { -0.107f, 0.926f, -0.246f, -0.555f, -0.301f, 0.276f, 0.471f, -0.084f, -0.754f, 0.082f, -0.952f, -0.394f, 0.659f, 0.054f, 0.795f, 0.923f, 0.232f, -0.788f, 0.478f, 0.775f, -0.118f, 0.691f, -0.933f, 0.809f, 0.164f, -0.263f, -0.923f, -0.88f, 0.819f, -0.521f, -0.045f, 0.034f };
  257.    float X[] = { 0.407f, 0.895f, 0.301f, 0.769f, -0.269f, -0.465f, 0.455f, -0.628f };
  258.    int incX = -1;
  259.    float Y[] = { -0.116f, -0.744f, -0.936f, -0.064f, -0.232f, -0.665f };
  260.    int incY = -1;
  261.    float y_expected[] = { -0.245235f, -0.313725f, -0.798094f, 0.691455f, -0.164015f, -0.242714f };
  262.    cblas_cgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);
  263.    {
  264.      int i;
  265.      for (i = 0; i < 3; i++) {
  266.        gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "cgbmv(case 803) real");
  267.        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "cgbmv(case 803) imag");
  268.      };
  269.    };
  270.   };
  271.  
  272.  
  273.   {
  274.    int order = 101;
  275.    int trans = 112;
  276.    int M = 3;
  277.    int N = 4;
  278.    int KL = 1;
  279.    int KU = 1;
  280.    int lda = 4;
  281.    float alpha[2] = {-1.0f, 0.0f};
  282.    float beta[2] = {0.0f, 0.1f};
  283.    float A[] = { -0.258f, 0.838f, -0.106f, -0.066f, 0.395f, 0.982f, -0.546f, 0.565f, 0.14f, -0.18f, 0.165f, -0.186f, 0.499f, -0.038f, -0.305f, -0.653f, -0.811f, -0.466f, -0.674f, -0.013f, -0.552f, -0.807f, -0.536f, 0.864f, -0.027f, -0.606f, 0.459f, 0.564f, -0.968f, 0.717f, -0.312f, -0.485f };
  284.    float X[] = { -0.399f, 0.459f, 0.398f, 0.358f, -0.161f, -0.359f };
  285.    int incX = -1;
  286.    float Y[] = { 0.572f, 0.293f, -0.813f, -0.096f, -0.611f, -0.717f, 0.736f, 0.259f };
  287.    int incY = -1;
  288.    float y_expected[] = { -0.619961f, -0.011425f, -0.477499f, 0.059361f, -0.886984f, 0.44008f, -0.139432f, 0.04644f };
  289.    cblas_cgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);
  290.    {
  291.      int i;
  292.      for (i = 0; i < 4; i++) {
  293.        gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "cgbmv(case 804) real");
  294.        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "cgbmv(case 804) imag");
  295.      };
  296.    };
  297.   };
  298.  
  299.  
  300.   {
  301.    int order = 102;
  302.    int trans = 112;
  303.    int M = 3;
  304.    int N = 4;
  305.    int KL = 1;
  306.    int KU = 1;
  307.    int lda = 4;
  308.    float alpha[2] = {-1.0f, 0.0f};
  309.    float beta[2] = {0.0f, 0.1f};
  310.    float A[] = { -0.258f, 0.838f, -0.106f, -0.066f, 0.395f, 0.982f, -0.546f, 0.565f, 0.14f, -0.18f, 0.165f, -0.186f, 0.499f, -0.038f, -0.305f, -0.653f, -0.811f, -0.466f, -0.674f, -0.013f, -0.552f, -0.807f, -0.536f, 0.864f, -0.027f, -0.606f, 0.459f, 0.564f, -0.968f, 0.717f, -0.312f, -0.485f };
  311.    float X[] = { -0.399f, 0.459f, 0.398f, 0.358f, -0.161f, -0.359f };
  312.    int incX = -1;
  313.    float Y[] = { 0.572f, 0.293f, -0.813f, -0.096f, -0.611f, -0.717f, 0.736f, 0.259f };
  314.    int incY = -1;
  315.    float y_expected[] = { -0.318227f, -0.172201f, -0.109343f, 0.698685f, 0.208261f, -0.269065f, 0.175074f, -0.507326f };
  316.    cblas_cgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);
  317.    {
  318.      int i;
  319.      for (i = 0; i < 4; i++) {
  320.        gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "cgbmv(case 805) real");
  321.        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "cgbmv(case 805) imag");
  322.      };
  323.    };
  324.   };
  325.  
  326.  
  327.   {
  328.    int order = 101;
  329.    int trans = 113;
  330.    int M = 3;
  331.    int N = 4;
  332.    int KL = 1;
  333.    int KU = 1;
  334.    int lda = 4;
  335.    float alpha[2] = {-1.0f, 0.0f};
  336.    float beta[2] = {0.0f, 0.1f};
  337.    float A[] = { -0.804f, 0.232f, -0.448f, -0.558f, -0.078f, -0.056f, -0.345f, -0.379f, 0.369f, -0.662f, -0.169f, -0.391f, -0.215f, 0.467f, 0.374f, 0.889f, -0.698f, 0.734f, 0.377f, -0.955f, 0.498f, 0.151f, -0.725f, -0.728f, -0.655f, -0.581f, 0.389f, 0.949f, -0.553f, -0.434f, 0.237f, 0.641f };
  338.    float X[] = { -0.262f, -0.823f, -0.357f, -0.994f, -0.347f, -0.375f };
  339.    int incX = -1;
  340.    float Y[] = { -0.683f, -0.87f, -0.708f, 0.071f, 0.575f, -0.575f, 0.845f, 0.032f };
  341.    int incY = -1;
  342.    float y_expected[] = { 0.341749f, 0.301992f, -0.306848f, 0.109252f, -0.018347f, -0.747479f, -0.894201f, 0.713246f };
  343.    cblas_cgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);
  344.    {
  345.      int i;
  346.      for (i = 0; i < 4; i++) {
  347.        gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "cgbmv(case 806) real");
  348.        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "cgbmv(case 806) imag");
  349.      };
  350.    };
  351.   };
  352.  
  353.  
  354.   {
  355.    int order = 102;
  356.    int trans = 113;
  357.    int M = 3;
  358.    int N = 4;
  359.    int KL = 1;
  360.    int KU = 1;
  361.    int lda = 4;
  362.    float alpha[2] = {-1.0f, 0.0f};
  363.    float beta[2] = {0.0f, 0.1f};
  364.    float A[] = { -0.804f, 0.232f, -0.448f, -0.558f, -0.078f, -0.056f, -0.345f, -0.379f, 0.369f, -0.662f, -0.169f, -0.391f, -0.215f, 0.467f, 0.374f, 0.889f, -0.698f, 0.734f, 0.377f, -0.955f, 0.498f, 0.151f, -0.725f, -0.728f, -0.655f, -0.581f, 0.389f, 0.949f, -0.553f, -0.434f, 0.237f, 0.641f };
  365.    float X[] = { -0.262f, -0.823f, -0.357f, -0.994f, -0.347f, -0.375f };
  366.    int incX = -1;
  367.    float Y[] = { -0.683f, -0.87f, -0.708f, 0.071f, 0.575f, -0.575f, 0.845f, 0.032f };
  368.    int incY = -1;
  369.    float y_expected[] = { -0.562773f, -0.455143f, -0.213881f, -0.466169f, -0.183683f, 0.097891f, -0.451416f, 0.052586f };
  370.    cblas_cgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);
  371.    {
  372.      int i;
  373.      for (i = 0; i < 4; i++) {
  374.        gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "cgbmv(case 807) real");
  375.        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "cgbmv(case 807) imag");
  376.      };
  377.    };
  378.   };
  379.  
  380.  
  381.   {
  382.    int order = 101;
  383.    int trans = 111;
  384.    int M = 3;
  385.    int N = 4;
  386.    int KL = 1;
  387.    int KU = 1;
  388.    int lda = 4;
  389.    double alpha[2] = {0, 0.1};
  390.    double beta[2] = {1, 0};
  391.    double A[] = { -0.919, -0.002, 0.105, -0.338, -0.358, -0.715, -0.157, 0.307, 0.334, 0.121, 0.366, 0.029, -0.006, -0.662, -0.314, 0.061, -0.322, -0.865, -0.586, 0.556, 0.507, 0.581, 0.855, -0.09, 0.836, -0.788, -0.209, -0.694, -0.695, 0.11, -0.234, 0.17 };
  392.    double X[] = { 0.356, -0.76, -0.96, 0.437, -0.849, 0.397, -0.382, -0.826 };
  393.    int incX = -1;
  394.    double Y[] = { 0.288, -0.832, 0.889, 0.576, -0.809, 0.4 };
  395.    int incY = -1;
  396.    double y_expected[] = { 0.3241775, -0.6761577, 0.8458527, 0.5705165, -0.8597295, 0.4268499 };
  397.    cblas_zgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);
  398.    {
  399.      int i;
  400.      for (i = 0; i < 3; i++) {
  401.        gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zgbmv(case 808) real");
  402.        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zgbmv(case 808) imag");
  403.      };
  404.    };
  405.   };
  406.  
  407.  
  408.   {
  409.    int order = 102;
  410.    int trans = 111;
  411.    int M = 3;
  412.    int N = 4;
  413.    int KL = 1;
  414.    int KU = 1;
  415.    int lda = 4;
  416.    double alpha[2] = {0, 0.1};
  417.    double beta[2] = {1, 0};
  418.    double A[] = { -0.919, -0.002, 0.105, -0.338, -0.358, -0.715, -0.157, 0.307, 0.334, 0.121, 0.366, 0.029, -0.006, -0.662, -0.314, 0.061, -0.322, -0.865, -0.586, 0.556, 0.507, 0.581, 0.855, -0.09, 0.836, -0.788, -0.209, -0.694, -0.695, 0.11, -0.234, 0.17 };
  419.    double X[] = { 0.356, -0.76, -0.96, 0.437, -0.849, 0.397, -0.382, -0.826 };
  420.    int incX = -1;
  421.    double Y[] = { 0.288, -0.832, 0.889, 0.576, -0.809, 0.4 };
  422.    int incY = -1;
  423.    double y_expected[] = { 0.4026074, -0.8033768, 0.7510795, 0.5671044, -0.8162255, 0.3349099 };
  424.    cblas_zgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);
  425.    {
  426.      int i;
  427.      for (i = 0; i < 3; i++) {
  428.        gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zgbmv(case 809) real");
  429.        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zgbmv(case 809) imag");
  430.      };
  431.    };
  432.   };
  433.  
  434.  
  435.   {
  436.    int order = 101;
  437.    int trans = 112;
  438.    int M = 3;
  439.    int N = 4;
  440.    int KL = 1;
  441.    int KU = 1;
  442.    int lda = 4;
  443.    double alpha[2] = {1, 0};
  444.    double beta[2] = {1, 0};
  445.    double A[] = { 0.511, -0.707, -0.906, 0.345, -0.524, -0.933, 0.154, -0.529, -0.651, -0.851, 0.104, 0.532, -0.297, 0.477, 0.511, 0.469, -0.888, -0.789, 0.656, 0.288, -0.749, 0.961, 0.571, 0.539, 0.465, 0.647, 0.653, -0.994, -0.515, 0.297, 0.35, -0.707 };
  446.    double X[] = { -0.991, 0.658, -0.909, -0.99, -0.517, -0.071 };
  447.    int incX = -1;
  448.    double Y[] = { 0.451, 0.351, -0.113, -0.62, 0.983, 0.511, 0.142, -0.186 };
  449.    int incY = -1;
  450.    double y_expected[] = { 0.560921, -1.094193, -0.210397, -0.613323, 3.018979, 0.641612, 0.384166, 1.11801 };
  451.    cblas_zgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);
  452.    {
  453.      int i;
  454.      for (i = 0; i < 4; i++) {
  455.        gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zgbmv(case 810) real");
  456.        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zgbmv(case 810) imag");
  457.      };
  458.    };
  459.   };
  460.  
  461.  
  462.   {
  463.    int order = 102;
  464.    int trans = 112;
  465.    int M = 3;
  466.    int N = 4;
  467.    int KL = 1;
  468.    int KU = 1;
  469.    int lda = 4;
  470.    double alpha[2] = {1, 0};
  471.    double beta[2] = {1, 0};
  472.    double A[] = { 0.511, -0.707, -0.906, 0.345, -0.524, -0.933, 0.154, -0.529, -0.651, -0.851, 0.104, 0.532, -0.297, 0.477, 0.511, 0.469, -0.888, -0.789, 0.656, 0.288, -0.749, 0.961, 0.571, 0.539, 0.465, 0.647, 0.653, -0.994, -0.515, 0.297, 0.35, -0.707 };
  473.    double X[] = { -0.991, 0.658, -0.909, -0.99, -0.517, -0.071 };
  474.    int incX = -1;
  475.    double Y[] = { 0.451, 0.351, -0.113, -0.62, 0.983, 0.511, 0.142, -0.186 };
  476.    int incY = -1;
  477.    double y_expected[] = { -0.435541, 0.015793, -0.926518, 1.122561, 1.671751, -0.257493, 0.187543, 1.066818 };
  478.    cblas_zgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);
  479.    {
  480.      int i;
  481.      for (i = 0; i < 4; i++) {
  482.        gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zgbmv(case 811) real");
  483.        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zgbmv(case 811) imag");
  484.      };
  485.    };
  486.   };
  487.  
  488.  
  489.   {
  490.    int order = 101;
  491.    int trans = 113;
  492.    int M = 3;
  493.    int N = 4;
  494.    int KL = 1;
  495.    int KU = 1;
  496.    int lda = 4;
  497.    double alpha[2] = {0, 0.1};
  498.    double beta[2] = {-0.3, 0.1};
  499.    double A[] = { 0.534, 0.67, -0.621, 0.143, -0.794, 0.073, 0.414, -0.9, 0.155, -0.368, 0.122, -0.583, 0.03, 0.646, -0.768, -0.892, -0.741, -0.397, 0.626, 0.004, -0.515, 0.355, 0.196, -0.989, -0.982, 0.985, 0.445, 0.63, -0.849, -0.528, 0.146, -0.319 };
  500.    double X[] = { -0.199, -0.259, 0.386, -0.131, -0.867, 0.888 };
  501.    int incX = -1;
  502.    double Y[] = { 0.106, 0.874, 0.962, 0.636, -0.759, 0.415, -0.053, 0.315 };
  503.    int incY = -1;
  504.    double y_expected[] = { -0.139603, -0.250546, -0.3107376, -0.1144656, 0.2181809, -0.0877031, 0.0149724, -0.0224571 };
  505.    cblas_zgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);
  506.    {
  507.      int i;
  508.      for (i = 0; i < 4; i++) {
  509.        gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zgbmv(case 812) real");
  510.        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zgbmv(case 812) imag");
  511.      };
  512.    };
  513.   };
  514.  
  515.  
  516.   {
  517.    int order = 102;
  518.    int trans = 113;
  519.    int M = 3;
  520.    int N = 4;
  521.    int KL = 1;
  522.    int KU = 1;
  523.    int lda = 4;
  524.    double alpha[2] = {0, 0.1};
  525.    double beta[2] = {-0.3, 0.1};
  526.    double A[] = { 0.534, 0.67, -0.621, 0.143, -0.794, 0.073, 0.414, -0.9, 0.155, -0.368, 0.122, -0.583, 0.03, 0.646, -0.768, -0.892, -0.741, -0.397, 0.626, 0.004, -0.515, 0.355, 0.196, -0.989, -0.982, 0.985, 0.445, 0.63, -0.849, -0.528, 0.146, -0.319 };
  527.    double X[] = { -0.199, -0.259, 0.386, -0.131, -0.867, 0.888 };
  528.    int incX = -1;
  529.    double Y[] = { 0.106, 0.874, 0.962, 0.636, -0.759, 0.415, -0.053, 0.315 };
  530.    int incY = -1;
  531.    double y_expected[] = { -0.1642353, -0.2575697, -0.3610975, -0.1305629, 0.1713576, -0.2514988, 0.0195631, -0.0648656 };
  532.    cblas_zgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);
  533.    {
  534.      int i;
  535.      for (i = 0; i < 4; i++) {
  536.        gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zgbmv(case 813) real");
  537.        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zgbmv(case 813) imag");
  538.      };
  539.    };
  540.   };
  541.  
  542.  
  543. }
  544.